package dao

import (
	"demo/config" // 获取配置文件，demo是因为我项目的名字就是demo
	"fmt"
	"gorm.io/driver/mysql" //引入mysql驱动
	"gorm.io/gorm"         // 使用gorm框架
	"time"
)

var (
	Db  *gorm.DB
	err error
)

// 定义结构体
type User struct {
	Age  int
	Name string
}

func init() {
	Db, err = gorm.Open(mysql.Open(config.MysqdblUrl), &gorm.Config{})
	if err != nil {
		panic(err) //如果出错，后续代码没有必要执行，想让程序中断，panic来执行即可
	} else {
		fmt.Printf("数据库连接成功")
	}

	DB, _ := Db.DB()
	// 最大连接数
	DB.SetMaxOpenConns(2)
	// 最大空闲连接数 <= 最大连接数
	DB.SetMaxIdleConns(1)
	// 连接数的生命周期, 从创建开始记时，到时间点会被销毁
	DB.SetConnMaxLifetime(time.Hour * 7)
	// 最大空闲时间, 这个链接距离上一次被使用的时间段，超过这个时间则认为该连接已过期
	DB.SetConnMaxIdleTime(time.Hour)
}
